package gao.xaiolei.dao;

import gao.xaiolei.enity.Task;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

@Repository("ITaskDao")
public interface ITaskDao extends JpaRepository<Task, String> {

	// 更改任务的状态
	@Modifying // update或者delete操作，在更新或者删除操作时，此注解必须加
	@Query(value = "update Task set status = :status where id = :id")
	public void updateStatus(@Param("status") int status, @Param("id") String id);

//	// 更改任务的描述
//	@Modifying // update或者delete操作，在更新或者删除操作时，此注解必须加
//	@Query(value = "update Task set description = :description where id = :id")
//	public void updateDescpiption(@Param("description") String description, @Param("id") String id);
//
//	// 更改任务的名字
//	@Modifying // update或者delete操作，在更新或者删除操作时，此注解必须加
//	@Query(value = "update Task set name = :name where id = :id")
//	public void updateName(@Param("TASK_NAME") String TASK_NAME, @Param("id") String id);
//
//	// 更改任务的优先级
//	@Modifying // update或者delete操作，在更新或者删除操作时，此注解必须加
//	@Query(value = "update Task set TASK_PRIORITY = :TASK_PRIORITY where id = :id")
//	public void updatePriority(@Param("TASK_PRIORITY") int TASK_PRIORITY, @Param("id") String id);
	
	//更改任务的是否有附件
    @Modifying // update或者delete操作，在更新或者删除操作时，此注解必须加
	@Query(value = "update Task set isAttachment = :isAttachment where id = :id")
	public void updateHasAtta(@Param("isAttachment") int isAttachment, @Param("id") String id);

//	// 根据任务发起人来删除任务
//	@Modifying // update或者delete操作，在更新或者删除操作时，此注解必须加
//	@Query(value = "delete Task where TASK_RESPONSIBLE = :TASK_RESPONSIBLE")
//	public void deleteByResonsible(@Param("TASK_RESPONSIBLE") String TASK_RESPONSIBLE);
//
//	// 根据任务发起人获取任务信息
//	@Query("from Task t where t.TASK_RESPONSIBLE=:TASK_RESPONSIBLE order by TASK_CREATION_DATE DESC")
//	public List<Task> queryByResponsible(@Param("TASK_RESPONSIBLE") String TASK_RESPONSIBLE);

	// 根据任务Id来获取任务信息
	@Query("from Task t where t.id=:id")
	public Task queryByTaskId(@Param("id") String id);

}
